﻿// Вызов перегруженного конструктора с помощью оператора this

using System;

class OverloadThisDemo
{
    public static void _Main()
    {
        OverloadThis ot1 = new OverloadThis();
        OverloadThis ot2 = new OverloadThis(9, 67);
        OverloadThis ot3 = new OverloadThis(ot2);

        Console.WriteLine("{0}, {1}", ot1.x, ot1.y);
        Console.WriteLine("{0}, {1}", ot2.x, ot2.y);
        Console.WriteLine("{0}, {1}", ot3.x, ot3.y);

        Console.ReadLine();
    }
}

class OverloadThis
{
    public int x, y;
    public OverloadThis(int i, int j)
    {
        Console.WriteLine("Внутри конструктора OverloadThis(int, int)");
        x = i;
        y = j;
    }

    public OverloadThis()
        : this(0, 0)
    {
        Console.WriteLine("Внутри конструктора OverloadThis()");
    }

    public OverloadThis(OverloadThis ot)
        : this(ot.x, ot.y)
    {
        Console.WriteLine("Внутри конструктора OverloadThis(OverloadThis ot)");
    }
}